home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / LSC213.cpt / nAppletalk.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-11-09  |  8.6 KB  |  428 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.  *  nAppletalk.h
  4.  *
  5.  *  Copyright (c) 1986, 1987 THINK Technologies, Inc.
  6.  *  These interfaces are based on information copyrighted
  7.  *  by Apple Computer, Inc., 1985, 1986, 1987.
  8.  *
  9.  */
  10.  
  11. #ifndef _nAppletalk_
  12. #define _nAppletalk_
  13.  
  14. #ifndef _Appletalk_
  15. #include "AppleTalk.h"
  16. #endif
  17.  
  18.  
  19. #define xppLoadedBit        5
  20. #define xppUnitNum            40
  21. #define xppRefNum            -41
  22.  
  23. #define scbMemSize            0xC0
  24.  
  25. #define xppFlagClr            0x00
  26. #define xppFlagSet            0x80
  27.  
  28. #define atpXOvalue            32
  29. #define atpEOMvalue            16
  30. #define atpSTSvalue            8
  31. #define atpTIDValidvalue    2
  32. #define atpSendChkvalue        1
  33.  
  34.  
  35. /*  AFP command codes  */
  36.  
  37. enum {
  38.     afpByteRangeLock = 1,
  39.     afpVolClose,
  40.     afpDirClose,
  41.     afpForkClose,
  42.     afpCopyFile,
  43.     afpDirCreate,
  44.     afpFileCreate,
  45.     afpDelete,
  46.     afpEnumerate,
  47.     afpFlush,
  48.     afpForkFlush,
  49.     afpGetDirParms,
  50.     afpGetFileParms,
  51.     afpGetForkParms,
  52.     afpGetSInfo,
  53.     afpGetSParms,
  54.     afpGetVolParms,
  55.     afpLogin,
  56.     afpContLogin,
  57.     afpLogout,
  58.     afpMapID,
  59.     afpMapName,
  60.     afpMove,
  61.     afpOpenVol,
  62.     afpOpenDir,
  63.     afpOpenFork,
  64.     afpRead,
  65.     afpRename,
  66.     afpSetDirParms,
  67.     afpSetFileParms,
  68.     afpSetForkParms,
  69.     afpSetVolParms,
  70.     afpWrite,
  71.     afpGetFlDrParms,
  72.     afpSetFlDrParms,
  73.     afpDTOpen = 48,
  74.     afpDTClose,
  75.     afpGetIcon = 51,
  76.     afpGtIcnInfo,
  77.     afpAddAPPL,
  78.     afpRmvAPPL,
  79.     afpGetAPPL,
  80.     afpAddCmt,
  81.     afpRmvCmt,
  82.     afpGetCmt,
  83.     afpPAddIcon = 192
  84. };
  85.  
  86.  
  87. /*  ASP error codes  */
  88.  
  89. enum {
  90.     aspNoAck = -1075,
  91.     aspTooMany,
  92.     aspSizeErr,
  93.     aspSessClosed,
  94.     aspServerBusy,
  95.     aspParamErr,
  96.     aspNoServers,
  97.     aspNoMoreSess,
  98.     aspBufTooSmall,
  99.     aspBadVersNum
  100. };
  101.  
  102.  
  103. /*  AFP error codes  */
  104.  
  105. enum {
  106.     afpIconTypeError = -5030,
  107.     afpDirNotFound,
  108.     afpCantRename,
  109.     afpServerGoingDown,
  110.     afpTooManyFilesOpen,
  111.     afpObjectTypeErr,
  112.     afpCallNotSupported,
  113.     afpUserNotAuth,
  114.     afpSessClosed,
  115.     afpRangeOverlap,
  116.     afpRangeNotLocked,
  117.     afpParmErr,
  118.     afpObjectNotFound,
  119.     afpObjectExists,
  120.     afpNoServer,
  121.     afpNoMoreLocks,
  122.     afpMiscErr,
  123.     afpLockErr,
  124.     afpItemNotFound,
  125.     afpFlatVol,
  126.     afpFileBusy,
  127.     afpEofError,
  128.     afpDiskFull,
  129.     afpDirNotEmpty,
  130.     afpDenyConflict,
  131.     afpCantMove,
  132.     afpBitmapErr,
  133.     afpBadVersNum,
  134.     afpBadUAM,
  135.     afpAuthContinue,
  136.     afpAccessDenied
  137. };
  138.  
  139.  
  140. /* ---------- MPP parameter block ---------- */
  141.  
  142.  
  143. typedef struct MPPParamBlock {
  144.     struct QElem    *qLink;
  145.     short            qType;
  146.     short            ioTrap;
  147.     Ptr                ioCmdAddr;
  148.     ProcPtr            ioCompletion;
  149.     OSErr            ioResult;
  150.     StringPtr        ioNamePtr;
  151.     short            ioVRefNum;
  152.     short            ioRefNum;
  153.     short            csCode;
  154.  
  155.     union {
  156.     
  157.         struct {
  158.             unsigned char    protType;
  159.             union {
  160.                 Ptr                wdsPointer;
  161.                 Ptr                handler;
  162.             } LAP1;
  163.         } LAP;
  164. #define MPPprotType            MPP.LAP.protType
  165. #define MPPwdsPointer        MPP.LAP.LAP1.wdsPointer
  166. #define MPPhandler            MPP.LAP.LAP1.handler
  167.  
  168.         struct {
  169.             unsigned char    socket;
  170.             unsigned char    checksumFlag;
  171.             Ptr                listener;
  172.         } DDP;
  173. #define MPPsocket            MPP.DDP.socket
  174. #define MPPchecksumFlag        MPP.DDP.checksumFlag
  175. #define MPPlistener            MPP.DDP.listener
  176.  
  177.         struct {
  178.             unsigned char    interval;
  179.             unsigned char    count;
  180.             Ptr                entityPtr;
  181.             union {
  182.                 unsigned char    verifyFlag;
  183.                 struct {
  184.                     Ptr                retBuffPtr;
  185.                     short            retBuffSize;
  186.                     short            maxToGet;
  187.                     short            numGotten;
  188.                 } NBP2;
  189.                 struct {
  190.                     AddrBlock        confirmAddr;
  191.                     unsigned char    newSocket;
  192.                 } NBP3;
  193.             } NBP1;
  194.         } NBP;
  195. #define MPPinterval            MPP.NBP.interval
  196. #define MPPcount            MPP.NBP.count
  197. #define MPPentityPtr        MPP.NBP.entityPtr
  198. #define MPPverifyFlag        MPP.NBP.NBP1.verifyFlag
  199. #define MPPretBuffPtr        MPP.NBP.NBP1.NBP2.retBuffPtr
  200. #define MPPretBuffSize        MPP.NBP.NBP1.NBP2.retBuffSize
  201. #define MPPmaxToGet            MPP.NBP.NBP1.NBP2.maxToGet
  202. #define MPPnumGotten        MPP.NBP.NBP1.NBP2.numGotten
  203. #define MPPconfirmAddr        MPP.NBP.NBP1.NBP3.confirmAddr
  204. #define MPPnewSocket        MPP.NBP.NBP1.NBP3.newSocket
  205.  
  206.         struct {
  207.             unsigned char    newSelfFlag;
  208.             unsigned char    oldSelfFlag;
  209.         } SSS;
  210. #define MPPnewSelfFlag        MPP.SSS.newSelfFlag
  211. #define MPPoldSelfFlag        MPP.SSS.oldSelfFlag
  212.         
  213.         Ptr                nKillQEl;
  214. #define MPPnKillQEl            MPP.nKillQEl
  215.  
  216.     } MPP;
  217. } MPPParamBlock, *MPPPBptr;
  218.  
  219.  
  220. /*  for MPW C compatibility  */
  221. #define MPPioCompletion        ioCompletion        
  222. #define MPPioResult            ioResult    
  223. #define MPPioRefNum            ioRefNum        
  224. #define MPPcsCode            csCode
  225. #define LAPprotType            MPPprotType
  226. #define LAPwdsPointer        MPPwdsPointer
  227. #define LAPhandler            MPPhandler
  228. #define DDPsocket            MPPsocket
  229. #define DDPchecksumFlag        MPPchecksumFlag
  230. #define DDPwdsPointer        MPPwdsPointer
  231. #define DDPlistener            MPPlistener
  232. #define    NBPinterval         MPPinterval
  233. #define NBPcount             MPPcount
  234. #define    NBPntQElPtr         MPPentityPtr
  235. #define NBPentityPtr         MPPentityPtr
  236. #define NBPverifyFlag         MPPverifyFlag
  237. #define NBPretBuffPtr         MPPretBuffPtr
  238. #define NBPretBuffSize         MPPretBuffSize
  239. #define NBPmaxToGet         MPPmaxToGet
  240. #define NBPnumGotten         MPPnumGotten
  241. #define NBPconfirmAddr         MPPconfirmAddr
  242. #define NBPnewSocket         MPPnewSocket
  243. #define NBPnKillQEl            MPPnKillQEl
  244.  
  245.  
  246. typedef struct WDSElement
  247. {
  248.     short            entrylength;
  249.     Ptr                entryPtr;
  250. } WDSElement;
  251.  
  252. typedef struct NamesTableEntry
  253. {
  254.     Ptr                qNext;
  255.     AddrBlock        nteAddress;
  256.     char            filler;
  257.     char            entityData[99];
  258. } NamesTableEntry;
  259.  
  260.  
  261. /* ---------- ATP parameter block ---------- */
  262.  
  263.  
  264. typedef struct ATPParamBlock {
  265.     struct QElem    *qLink;
  266.     short            qType;
  267.     short            ioTrap;
  268.     Ptr                ioCmdAddr;
  269.     ProcPtr            ioCompletion;
  270.     OSErr            ioResult;
  271.     long            userData;
  272.     short            reqTID;
  273.     short            ioRefNum;
  274.     short            csCode;
  275.  
  276.     unsigned char    atpSocket;
  277.     unsigned char    atpFlags;
  278.     AddrBlock        addrBlock;
  279.     short            reqLength;
  280.     Ptr                reqPointer;
  281.     Ptr                bdsPointer;
  282.  
  283.     union {
  284.     
  285.         struct {
  286.             unsigned char    numOfBuffs;
  287.             unsigned char    timeOutVal;
  288.             unsigned char    numOfResps;
  289.             unsigned char    retryCount;
  290.             short            intBuff;
  291.         } ATP1;
  292. #define ATPnumOfBuffs        ATP.ATP1.numOfBuffs
  293. #define ATPtimeOutVal        ATP.ATP1.timeOutVal
  294. #define ATPnumOfResps        ATP.ATP1.numOfResps
  295. #define ATPretryCount        ATP.ATP1.retryCount
  296. #define ATPintBuff            ATP.ATP1.intBuff
  297.  
  298.         struct {
  299.             unsigned char    filler;
  300.             unsigned char    bdsSize;
  301.             short            transID;
  302.         } ATP2;
  303. #define ATPbdsSize            ATP.ATP2.bdsSize
  304. #define ATPtransID            ATP.ATP2.transID
  305.         
  306.         unsigned char    bitMap;
  307. #define ATPbitMap            ATP.bitMap
  308.  
  309.         unsigned char    rspNum;
  310. #define ATPrspNum            ATP.rspNum
  311.  
  312.         Ptr                aKillQEl;
  313. #define ATPaKillQEl            ATP.aKillQEl
  314.  
  315.     } ATP;
  316. } ATPParamBlock, *ATPPBptr;
  317.  
  318.  
  319. /*  for MPW C compatibility  */
  320. #define ATPioCompletion        ioCompletion        
  321. #define ATPioResult            ioResult        
  322. #define ATPuserData            userData        
  323. #define ATPreqTID            reqTID        
  324. #define ATPioRefNum            ioRefNum        
  325. #define ATPcsCode            csCode        
  326. #define ATPatpSocket        atpSocket        
  327. #define ATPatpFlags            atpFlags        
  328. #define ATPaddrBlock        addrBlock        
  329. #define ATPreqLength        reqLength        
  330. #define ATPreqPointer        reqPointer        
  331. #define ATPbdsPointer        bdsPointer    
  332.  
  333.  
  334. /* ---------- XPP parameter block ---------- */
  335.  
  336.  
  337. typedef struct XPPParamBlock {
  338.     struct QElem    *qLink;
  339.     short            qType;
  340.     short            ioTrap;
  341.     Ptr                ioCmdAddr;
  342.     ProcPtr            ioCompletion;
  343.     OSErr            ioResult;
  344.     long            cmdResult;
  345.     short            ioVRefNum;
  346.     short            ioRefNum;
  347.     short            csCode;
  348.  
  349.     union {
  350.     
  351.         Ptr                abortSCBPtr;
  352. #define XPPabortSCBPtr        XPP.abortSCBPtr
  353.         
  354.         struct {
  355.             short            aspMaxCmdSize;
  356.             short            aspQuantumSize;
  357.             short            numSesss;
  358.         } XPP1;
  359. #define XPPaspMaxCmdSize    XPP.XPP1.aspMaxCmdSize
  360. #define XPPaspQuantumSize    XPP.XPP1.aspQuantumSize
  361. #define XPPnumSesss            XPP.XPP1.numSesss
  362.  
  363.         struct {
  364.             short            sessRefnum;
  365.             unsigned char    aspTimeout;
  366.             unsigned char    aspRetry;
  367.             union {
  368.                 struct {
  369.                     AddrBlock        serverAddr;
  370.                     Ptr                scbPointer;
  371.                     Ptr                attnRoutine;
  372.                 } XPP2;
  373.                 struct {
  374.                     short            cbSize;
  375.                     Ptr                cbPtr;
  376.                     short            rbSize;
  377.                     Ptr                rbPtr;
  378.                     union {
  379.                         struct {
  380.                             AddrBlock        afpAddrBlock;
  381.                             Ptr                afpSCBPtr;
  382.                             Ptr                afpAttnRoutine;
  383.                         } XPP3;
  384.                         struct {
  385.                             short            wdSize;
  386.                             Ptr                wdPtr;
  387.                             unsigned char    ccbStart[296];
  388.                         } XPP4;
  389.                     } XPP5;
  390.                 } XPP6;
  391.             } XPP7;
  392.         } XPP8;
  393. #define XPPsessRefnum        XPP.XPP8.sessRefnum
  394. #define XPPaspTimeout        XPP.XPP8.aspTimeout
  395. #define XPPaspRetry            XPP.XPP8.aspRetry
  396. #define XPPserverAddr        XPP.XPP8.XPP7.XPP2.serverAddr
  397. #define XPPscbPointer        XPP.XPP8.XPP7.XPP2.scbPointer
  398. #define XPPattnRoutine        XPP.XPP8.XPP7.XPP2.attnRoutine
  399. #define XPPcbSize            XPP.XPP8.XPP7.XPP6.cbSize
  400. #define XPPcbPtr            XPP.XPP8.XPP7.XPP6.cbPtr
  401. #define XPPrbSize            XPP.XPP8.XPP7.XPP6.rbSize
  402. #define XPPrbPtr            XPP.XPP8.XPP7.XPP6.rbPtr
  403. #define XPPafpAddrBlock        XPP.XPP8.XPP7.XPP6.XPP5.XPP3.afpAddrBlock
  404. #define XPPafpSCBPtr        XPP.XPP8.XPP7.XPP6.XPP5.XPP3.afpSCBPtr
  405. #define XPPafpAttnRoutine    XPP.XPP8.XPP7.XPP6.XPP5.XPP3.afpAttnRoutine
  406. #define XPPwdSize            XPP.XPP8.XPP7.XPP6.XPP5.XPP4.wdSize
  407. #define XPPwdPtr            XPP.XPP8.XPP7.XPP6.XPP5.XPP4.wdPtr
  408. #define XPPccbStart            XPP.XPP8.XPP7.XPP6.XPP5.XPP4.ccbStart
  409.  
  410.     } XPP;
  411. } XPPParamBlock, *XPPParmBlkPtr;
  412.  
  413.  
  414. /* ---------- AFP command block ---------- */
  415.  
  416.  
  417. typedef struct AFPCommandBlock {
  418.     unsigned char    cmdByte;
  419.     unsigned char    startEndFlag;
  420.     short            forkRefNum;
  421.     long            rwOffset;
  422.     long            reqCount;
  423.     unsigned char    newLineFlag;
  424.     char            newLineChar;
  425. } AFPCommandBlock;
  426.  
  427.  
  428. #endif _nAppletalk_